/**
 * 
 */
package com.googlecode.pcapj;

import java.io.Closeable;
import java.io.IOException;
import java.util.List;

/**
 * Device Interface 
 */
public interface Interface extends PacketCapture, Closeable{
	/**
	 * Gets the name of the device interface.
	 * @return the name of the device interface.
	 */
	public String getName();
	/**
	 * Gets the description of the device interface.
	 * @return the description, or null if no description.
	 */
	public String getDescription();
	/**
	 * Returns whether the device is a loopback interface.
	 * @return true if the device is a loopback interface.
	 */
	public boolean isLoopback();
	/**
	 * Gets a list of socket informations.
	 * @return the list of the SocketInfo objects.
	 */
	public List<SocketInfo> getSocketInfos();
	/**
	 * Sets a packet filter.
	 * @param filterString a string to filter packet.
	 * @throws IOException 
	 */
	public void setFilter(String filterString) throws IOException;
}
